From 802bf4199911c811938b0454a876089bafa97dba Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Tue, 24 May 2022 10:30:58 -0400 Subject: [PATCH] Meson: Simplify pkgconfig file generator Meson knows all private dependencies itself when passing the library as first positional argument, no need to specify them manually. Also simplify backend specific files by simply requiring gtk4, just like unix-print already did. This should fix generated gtk4-uninstalled.pc, see Meson bug report: https://github.com/mesonbuild/meson/issues/10415 --- meson.build | 47 ++++++++++++++--------------------------------- 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/meson.build b/meson.build index d78bbc1cd2..f46236dadd 100644 --- a/meson.build +++ b/meson.build @@ -471,9 +471,6 @@ if not os_win32 endif endif - -pc_gdk_extra_libs = [] - cairo_backends = [] foreach backend: [ ['cairo-xlib', cairo_req, x11_enabled], ['cairo-win32', cairo_req, win32_enabled], @@ -604,26 +601,14 @@ if x11_enabled cdata.set('HAVE_RANDR15', xrandr15_dep.found()) endif -if broadway_enabled - pc_gdk_extra_libs += ['-lz'] -endif - -if macos_enabled - pc_gdk_extra_libs += ['-framework Cocoa', '-framework Carbon'] -endif - extra_demo_ldflags = [] if win32_enabled - pc_gdk_extra_libs += ['-lgdi32', '-limm32', '-lshell32', '-lole32'] if cc.get_id() == 'msvc' # Since the demo programs are now built as pure GUI programs, we # need to pass in /entry:mainCRTStartup so that they will properly # link on Visual Studio builds extra_demo_ldflags = ['/entry:mainCRTStartup'] - else - pc_gdk_extra_libs += ['-Wl,-luuid'] endif - pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32', '-lhid'] # Check whether libepoxy is built with EGL support on Windows endif @@ -841,16 +826,7 @@ gsk_private_packages = [] # all already in gdk_private_packages pangoft2_pkgs = (wayland_enabled or x11_enabled) ? ['pangoft2'] : [] gtk_private_packages = pangoft2_pkgs -gdk_extra_libs = pc_gdk_extra_libs -gsk_extra_libs = [] -gtk_extra_libs = [] - -gdk_extra_cflags = [] -gsk_extra_cflags = [] -gtk_extra_cflags = [] - -pkgs = [ 'gtk4' ] - +pkgs = [] pkg_targets = [] display_backends = [] foreach backend: [ 'broadway', 'macos', 'wayland', 'win32', 'x11', ] @@ -867,18 +843,23 @@ common_pc_variables = [ 'gtk_host=@0@-@1@'.format(host_machine.cpu_family(), host_machine.system()), # FIXME ] +pkg_config.generate(libgtk, + filebase: 'gtk4', + unescaped_variables: common_pc_variables, + name: 'GTK', + description: 'GTK Graphical UI Library', + requires: gdk_packages + gsk_packages + gtk_packages, + subdirs: ['gtk-@0@'.format(gtk_api_version)], +) +meson.override_dependency('gtk4', libgtk_dep) + foreach pkg: pkgs pkg_config.generate( filebase: pkg, unescaped_variables: common_pc_variables, name: 'GTK', description: 'GTK Graphical UI Library', - requires: gdk_packages + gsk_packages + gtk_packages, - requires_private: gdk_private_packages + gsk_private_packages + gtk_private_packages, - libraries: ['-L${libdir}', '-lgtk-4'], - libraries_private: gdk_extra_libs + gsk_extra_libs + gtk_extra_libs, - subdirs: ['gtk-@0@'.format(gtk_api_version)], - extra_cflags: gdk_extra_cflags + gsk_extra_cflags + gtk_extra_cflags, + requires: 'gtk4', ) meson.override_dependency(pkg, libgtk_dep) endforeach @@ -889,10 +870,10 @@ if os_unix unescaped_variables: common_pc_variables, name: 'GTK', description: 'GTK Unix print support', - requires: ['gtk4'] + gtk_packages, - libraries: [], + requires: 'gtk4', subdirs: ['gtk-@0@/unix-print'.format(gtk_api_version)], ) + meson.override_dependency('gtk4-unix-print', libgtk_dep) endif subdir('po') -- 2.30.2